float LEARNING_RATE = 0.01;

class Neuron {
  // ...
  int m_error;
  // ...
  void respond() {
    //...
    // reset the error every time you respond
    m_error = 0.0;
  }
  void setError(int desired) {
    m_error = desired – m_output;
  }
  void train() {
  
    float delta =(1.0 - m_output) * (1.0 + m_output) *
      m_error * LEARNING_RATE;
    for (int i = 0; i < m_inputs.length; i++) {
      m_inputs[i].m_error += m_weights[i] * m_error;
      m_weights[i] += m_inputs[i].m_output * delta;
    }
  }
  // ...
}